{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Hands-on 2: Modelagem da Taxa de Pico de Sistemas Modernos de Comunicação \n",
    "\n",
    "\n",
    "\n",
    "# Objetivos\n",
    "As metas desse tutorial são ajudar o usuário a:\n",
    "- Ter contato com as especificações de padrões de sistemas 3GPP para o 4G e o 5G;\n",
    "- Entender e protoipar especificidades das camadas MAC/PHY de sistemas modernos de comunicação móvel;\n",
    "- Avaliar a capacidade de pico de sistemas de comunicações móveis;\n",
    "- Comparar diferentes releases do 3GPP quanto a capacidade de pico.\n",
    "\n",
    "\n",
    "# Objeto da avaliação\n",
    "\n",
    "Sistemas de comunicações móveis são padronizados por meio de respostas advindas de protótipos dos sistemas. Como os padrões ainda estão sem concebidos, a maioria das vezes os protótipos são baseados em artefatos de software, conhecidos como simuladores. A modelagem por simulação pode ser tão completa como se deseje, com precisão diretamente proporcional a complexidade do simulador. De forma simplista, uma simulação sistêmica pode ser usada para avaliar a capacidade de um sistema existente, comparar sistemas distintos ou testar funcionalidades na fase de concepção (prova de conceito). Este projeto tem como objetivo a avaliação de um sistema de comunicações sem fio quando especificidades das camadas MAC/PHY são modeladas.\n",
    "\n",
    "# Entregas\n",
    "\n",
    "A entrega deve conter: \n",
    "\n",
    " - uma pasta chamada **code**, a qual deve trazer um arquivo chamado README.txt. Lendo as instruções desse arquivo, um usuário conseguirá rodar seu código e obter os gráficos do seu vídeo. Isso precisa ser feito sem consulta ao projetista do código (você) e é um item muito importante da avaliação final do projeto;\n",
    " - vídeo e apresentação, apresentação com as formulações e explicações de como o cálculo da taxa de pico foi realizado. Faz parte da entrega a produção de um vídeo no youtube, de no máximo 5 minutos, contendo uma descrição técnica do cálculo da taxa e do código implementado (explicar brevemente o que foi feito, mostrar as formulações, mostrar como rodar o código e os gráficos gerados). O link do vídeo deve ser informado no arquivo README.txt. O vídeo é parte crucial da avaliação. O vídeo no youtube deve explicar o funcionamento da interface gráfica e mostrar calculadora funcionando com a taxa mínima e a taxa máxima do sistema.\n",
    "\n",
    "\n",
    "# Descrição do experimento\n",
    "\n",
    "\n",
    "O sistema LTE foi introduzido no Release 8 do 3GPP em dezembro de 2008, sua evolução, no Release 10 trouxe as funcionalidades para o atendimento dos requisitos dos sistemas 4G (IMT-Advanced). Seguindo as especificações do Release 8, as seguintes características se destacam no LTE:\n",
    "\n",
    "  - Largura de banda flexível: 1.4 MHz, 3 MHz, 5 MHz, 10 MHz, 15 MHz e 20 MHz;\n",
    "  - Pico de taxa de transmissão: 300 Mbps no downlink ao usar o MIMO 4x4 e 20 MHz de largura de banda e 64-QAM;\n",
    "  - Rede all-IP com baixo RTT (round trip time): 5 ms de latência de pacotes IP (em condições ideais de rádio)\n",
    "\n",
    "Para o Release 10 (LTE-Advanced), as seguintes funcionalidades foram adicionadas:\n",
    "\n",
    "  - Densification (uso de small cells, resultando em um deployment denso em termos de eNBs);\n",
    "  - Relaying;\n",
    "  - MIMO (Downlink 8 x 8 MIMO e Uplink 4 x 4 MIMO);\n",
    "  - Carrier Aggregation (até 100 MHz de banda - 5 portadoras de 20 MHz).\n",
    "\n",
    "Essas melhorias, principalmente o Carrier Aggregation, possibilitam taxas de transmissão teóricas de 1,5 Gbps (em 100 MHz no Uplink) e 3 Gbps (em 100 MHz no Downlink). \n",
    "\n",
    "\n",
    "Já com o New radio (NR), o 3GPP visa o atendimento dos requisitos do 5G. Mais especificamente para o caso de uso demnominado enhance Mobile BradBand (eMBB), taxa de transmissão de pico é um alvo importante, com patamares de até 20 Gbps.\n",
    "\n",
    "Calcular as diversas taxas de transmissão do LTE (seja qual for o Release) e do NR é o objetivo desse experimento, incluindo funcionalidades importantes como o Carrier Aggregation.\n",
    "\n",
    "O NR tem numerologia de camada física flexível e compatível com o LTE. Um frame LTE de 10 ms é divido em 10 subframes de 1 ms cada, com cada subframe sendo formado por 2 slots de 0,5 ms cada. O subframe facilita a alocação de recursos, enquanto o slot é útil para sincronização e estimação de canal. O frame é a unidade de envio de informação do sistema. Cada slot contém 6 ou 7 símbolos OFDM, dependendo do tamanho do prefixo cíclico. Na frequência, múltiplos de 12 subportadoras de 15 kHz cada são agrupados em blocos de 180 kHz, denominados Physical Resource Blocks (PRBs). O número de PRBs existentes depende diretamente da banda disponível no sistema. Por exemplo, em 20 MHz de banda, existem 100 PRBs disponíveis para alocação. A mínima unidade de alocação de recurso se chama Resouce Block (RB), o qual corresponde a meio subframe no tempo (1 slot) e um PRB na frequência. Assim, a cada TTI (Time Transmission Interval, igual a 1ms), a eNodeB escalona RBs para os UEs do sistema. Este projeto estimula o aluno a entender com mais detalhes a alocação de recursos do LTE e sua capacidade máxima teórica, bem como do NR.\n",
    "\n",
    "Um dos grandes objetivos desse projeto é identificar quais os parâmetros de camada PHY influenciam no cálculo da taxa de transmissão de pico dos sistemas LTE-Advanced (release 10) e do NR. Os dois sistemas foram escolhidos porque o Release 10 está presente na maioria das operadoras brasileiras e o NR é a opção do 3GPP para o 5G.\n",
    "\n",
    "Esse cálculo está muito bem mapeado para o Release 8, ficando como desafio o mapeamento para o Release 10 e para o NR."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Para release 8, o Downlink throughput é calculado baseado na especificação 3GPP 36.213, principalmente pelas tabelas 7.1.7.1-1 e 7.1.7.2.1-1. Outro desafio importante é mapear a norma que tem as tabelas do LTE-Advanced Release 10, e usá-las para a sua calculadora. Será a mesma norma, em sua versão mais atualizada? Para o NR, é importante consultar a especificação 3GPP TS 38.306.\n",
    "\n",
    "Faça uma função chamada calcTputLTE, que receba os parâmetros de entrada do LTE e devolva o valor da taxa de transmissão de pico do DL. Existem duas maneiras de calcular a taxa de pico: (i) Pelas tabelas da norma (que incluem valores mais precisos em relação ao overhead); e (ii) Via equações que relacionam a capacidade do PRB e a disponibilidade de PRBs dependendo da banda escolhida. Fica a critério do aluno fazer das duas formas, mas o projeto requisita minimamente os cálculos pelas tabelas da norma do Release 10 do LTE. Para o NR, essa escolha é livre.\n",
    "\n",
    "\n",
    "Para o LTE, construa a calcTputLTE com os seguintes parâmetros de entrada:\n",
    "  - Número de Component Carriers\n",
    "  - MIMO (layers)\n",
    "  - Largura de banda\n",
    "  - Prefixo cíclico\n",
    "  - MCS\n",
    "  \n",
    "Para o NR, construa a calcTputNR com os seguintes parâmetros de entrada:\n",
    "  - Número de Component Carriers\n",
    "  - Frequency Range\n",
    "  - MIMO (layers)\n",
    "  - Esquema de Modulação\n",
    "  - Numerologia (espaçamento entre subportadora)\n",
    "  - Number of RBs (0 to 275)\n",
    "\n",
    "Como estamos interessados em taxa máxima de downlink, o Scaling Factor pode ser sempre igual a 1. O código pode ser simples e inspirado em: https://nrcalculator.firebaseapp.com/nrthroughput.html e https://www.rfwireless-world.com/calculators/5G-NR-maximum-throughput-calculator.html. A parte teórica do cálculo da taxa de pico pode ser inspirada em https://nrcalculator.firebaseapp.com/cheatsheet.html.\n",
    "\n",
    "Faça uma interface gráfica para facilitar o uso da calculadora. O formato da interface é livre, bem como a linguagem de programação utilizada. A seguir, é mostrada uma interface gráfica feita para o Release 10. Ela é só um exemplo, você pode configurá-la da maneira que desejar.\n",
    "\n",
    "\n",
    "![calc](./FIGS/HD_03/fotocalculadora.jpg)\n",
    "\n",
    "\n",
    "Existem outros autores que disponibilizam material específico sobre o cálculo da taxa de pico do NR, que pode ser de grande utilidade para o projeto, entre eles:\n",
    "  \n",
    "  - https://5g-tools.com/5g-nr-throughput-calculator/\n",
    "  - https://www.rfwireless-world.com/calculators/5G-NR-maximum-throughput-calculator.html\n",
    "  - 3GPP TS 38.306 V15.2.0 (2018-06)\n",
    "  \n",
    "Algumas referências interessantes para o LTE:\n",
    "\n",
    "http://www.3gpp.org/technologies/keywords-acronyms/97-lte-advanced\n",
    "http://www.simpletechpost.com/p/throughput-calculator.html\n",
    "https://www.aglmediagroup.com/wp-content/uploads/2015/03/Understanding-Carrier-Aggregation-150303.pdf\n",
    "http://www.techplayon.com/lte-fdd-system-capacity-and-throughput-calculation/\n",
    "http://anisimoff.org/eng/lte_throughput_calculator.html\n",
    "http://anisimoff.org/eng/lte_throughput.html\n",
    "http://www.techtrained.com/what-downlink-throughput-theoretical-can-you-achieve-in-lte-advanced-tdd/\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Matlab",
   "language": "matlab",
   "name": "matlab"
  },
  "language_info": {
   "codemirror_mode": "octave",
   "file_extension": ".m",
   "help_links": [
    {
     "text": "MetaKernel Magics",
     "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md"
    }
   ],
   "mimetype": "text/x-matlab",
   "name": "matlab",
   "version": "0.14.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
